#define I2C_100kHz   72
#define I2C_400kHz   12

/// <summary>Initializes the I2C interface.</summary>
/// <param name="I2C_BR">Describes the baud rate.</param>
void I2C_Init               $opc(0x24)(byte I2C_BR);

/// <summary>Introduces communication with a starting sequence. Afterwards the status of the interface can be returned with I2C_Status().</summary>
void I2C_Start              $opc(0x25)(void);

/// <summary>Ceases the I2C communication with a stop sequence. Afterwards the status of the interface can be returned with I2C_Status().</summary>
void I2C_Stop               $opc(0x26)(void);

/// <summary>Sends a byte to the I2C bus. Afterwards the status of the interface can be returned with I2C_Status().</summary>
/// <param name="data">Data byte.</param>
void I2C_Write              $opc(0x27)(byte data);

/// <summary>Receives a byte and acknowledges with ACK. Afterwards the status of the interface can be returned with I2C_Status().</summary>
/// <returns>Value read from the I2C bus.</returns>
byte I2C_Read_ACK           $opc(0x28)(void);

/// <summary>Receives a byte and acknowledges with NACK. Afterwards the status of the interface can be returned with I2C_Status().</summary>
/// <returns>Value read from the I2C bus.</returns>
byte I2C_Read_NACK          $opc(0x29)(void);

/// <summary>With I2C_Status the status of the I2C interface can be accessed.</summary>
/// <returns>Current I2C Status.</returns>
byte I2C_Status             $opc(0x2A)(void);